mixin Storage {
  bool setBool(String key, bool value);

  bool getBool(String key, {bool defaultValue = false});

  bool setInt32(String key, int value);

  int getInt32(String key, {int defaultValue = 0});

  bool setInt(String key, int value);

  int getInt(String key, {int defaultValue = 0});

  bool setDouble(String key, double value);

  double getDouble(String key, {double defaultValue = 0});

  bool setString(String key, String? value);

  String? getString(String key);

  List<String> get allKeys;

  bool containsKey(String key);

  void removeValue(String key);

  /// See also [trim()].
  void removeValues(List<String> keys);

  void clearAll();

  void close();
}
